;(async function () {
  const express = require('express')

  // 引入连接数据库的代码
  const connect = require('./db/connect')

  // 引入管理员相关的路由
  const adminRouter = require('./routes/admin')
  const loginRouter = require('./routes/login')

  try {
    await connect
    console.log('数据库连接成功了')
  } catch (error) {
    console.log('数据库连接失败', error)
    return
  }

  const app = express()
  // post请求请求主体的数据格式:
  // 1. application/x-www-form-urlencoded ==> url编码-->form表单默认
  // 2. application/json  --> axios发送post请求的默认格式
  // 3. mutiple/form-data  --> 使用formdata的格式
  //注意: 使用的express-formdable中间件处理数据会和application/json数据发生冲突

  app.use(express.json())

  // 配置路由
  app.use(adminRouter)
  app.use(loginRouter)

  app.listen(5000, (err) => {
    if (err) console.log('fail', err)
    else console.log('服务器启动成功')
  })
})()

// 测试代码

// const jwt = require('jwt-simple')
// const KEY = 'web02'
// const token = jwt.encode({ xxx: 123 }, KEY)
// console.log(token)

// console.log(jwt.decode(token, KEY))
// const dayjs = require('dayjs')
// const tokenManger = require('./utils/tokenM')
// const token = tokenManger.encode({ xxx: 123 })
// const result = tokenManger.decode(token)

// console.log(dayjs(result.expires).format('YYYY-MM-DD h:mm:ss'))
